﻿
// 간단한 리스트 생성용 클래스 선언

class ListMakerSystem {

	public var instance:MovieClip;

	public var titleXml:Array;
	public var urlXml:Array;
	public var imgXml:Array;
	public var uiControlPath:MovieClip;
	public var listUnitHeight:Number;

	public function ListMakerSystem(_uiControlPath:MovieClip, _instance:MovieClip, _titleXml:Array, _urlXml:Array, _imgXml:Array, _listUnitHeight:Number) {

		this.uiControlPath = _uiControlPath;
		this.instance = _instance;

		//초기 카운터 0으로 세팅 
		this.instance.noDataCount = 0;

		this.titleXml = _titleXml;
		this.urlXml = _urlXml;
		this.imgXml = _imgXml;

		this.listUnitHeight = _listUnitHeight;

		this.dataLoading();

	}
	private static function listMake(_uiControlPath:MovieClip, _instance:MovieClip, _titleXml:Array, _urlXml:Array, _imgXml:Array, _listUnitHeight:Number):Void {

		//-----------지역변수 설정
		var uiControlPath = _uiControlPath;
		var instance = _instance;
		var titleXml = _titleXml;
		var urlXml = _urlXml;
		var imgXml = _imgXml;
		var listUnitHeight = _listUnitHeight;




        //버튼 활성화 초기화 임시값 세팅
		instance.activeNum = -1;

		for (var i:Number = 0; i<=titleXml.length-1; i++) {
			//리스트 텍스트 생성
			instance["listLine"]._visible = false;
			instance["listLine"].duplicateMovieClip("listLine"+i,i*1000+1);
			instance["listLine"+i]._x = 0;
			instance["listLine"+i]._y = 0+listUnitHeight*i;
			//trace(i);
			//trace(instance["listLine"+i]._y);
			//

			//텍스트 설정 :public createTextField(instanceName:String, depth:Number, x:Number, y:Number, width:Number, height:Number) : TextField
			instance["listLine"+i].createTextField("lineTitle",10000*i+10,2.5,10.1,180,60);
			instance["listLine"+i]["lineTitle"].type = "dynamic";
			instance["listLine"+i]["lineTitle"].embedFonts = false;
			instance["listLine"+i]["lineTitle"].selectable = false;
			instance["listLine"+i]["lineTitle"].multiline = true;
			instance["listLine"+i]["lineTitle"].wordWrap = true;
			instance["listLine"+i]["lineTitle"]._quality = "BEST";
			instance["listLine"+i]["lineTitle"].textColor = 0x666666;
			instance["listLine"+i]["lineTitle"].text = " ";
			instance["listLine"+i]["lineTitle"].text = titleXml[i];
			instance["listLine"+i]["lineTitle"].setTextFormat(instance.myFormat);
			//trace("라인텍스트="+instance["listLine"+i]["lineTitle"].text);
			//

			//리스트 이미지 생성
			//이미지 로딩
			//trace("이미지경로="+instance["listLine"+i].imgPath);

			//버튼 설정



			instance["listLine"+i].hiddenBn.onRelease = function() {
				getURL(urlXml[Number(this._parent._name.substring(8))])
			};

			instance["listLine"+i].hiddenBn.onRollOver = function() {
				this._parent.lineTitle.textColor = 0x65B542;
				instance["listLine"+instance.activeNum].lineTitle.textColor=0x666666;

			};

			instance["listLine"+i].hiddenBn.onRollOut = function() {			

				for (var i:Number = 0; i<=titleXml.length-1; i++) {
					if (instance.activeNum != i) {
						instance["listLine"+i].lineTitle.textColor = 0x666666;						
					} else if (instance.activeNum == i){
						instance["listLine"+i].lineTitle.textColor = 0x65B542;
						//trace(instance.activeNum);
					}
				}
			};

			//
		}
		//드래그 모듈 시작
		//trace("instance._height="+instance);
		//trace("instance._height="+instance._height);
		instance._parent.dragStart();


	}
	//===================================================================================================================== 연동 실패시 실행 메소드

	public function textError():Void {
		//접속이 원할하지 않습니다. 잠시 후 다시 실행해주시길 바랍니다.
		//즉  연동 파일이 없거나 클라이언트측의 인터넷이 끊어져 엑세스가 불가능한경우
		instance.loadingBar._visible = false;
		instance.noLinkText._alpha = 100;
		instance.noLinkText._visible = true;
	}
	//===================================================================================================================== 연동 성공하면 호출되는 메소드 - 현재 등록된 데이타가 있는지 없는지 여부 판단

	public function dataLoading():Void {

		var instance:MovieClip = this.instance;

		//점검 - - - -  리스트 갯수 점검
		//trace("titleXml.length="+Number(titleXml.length));


		if (Number(titleXml.length) == 0 || titleXml.length == undefined) {
			//로딩바 사라지기
			instance.loadingBar._visible = false;
			//등록된 데이타가 없습니다.
			instance.noDataText._alpha = 100;
			instance.noDataText._visible = true;
			return;

		} else {
			//trace("instance.noDataCount="+instance.noDataCount);
			//로딩바 사라지기
			instance.loadingBar._visible = false;
			instance.noDataText._alpha = 0;
			instance.noDataText._visible = false;
			this.textForMatStart();
			//리스트 컨텐츠 로딩용 onEnterFrame 무비클립 생성
			var loadingCheck:MovieClip = instance.createEmptyMovieClip("loadingCheck", 100);
			ListMakerSystem.listMake(this.uiControlPath,this.instance,this.titleXml,this.urlXml,this.imgXml,this.listUnitHeight);
		}
	}

	//===================================================================================================================== 필드 로딩 체크 메소드

	public function loadingCompleteCheck():Void {

		//지역변수 정의
		var instance:MovieClip = this.instance;

		//텍스트필드 내용 로딩 체크
		instance.loadingCheck.onEnterFrame = function() {

			//매프레임 반복할때마다 noDataCount는 0으로 리셋
			instance.noDataCount = 0;

			//for문에서 현재 값을 조사해서 제대로 입력이 되지않았다면
			for (var i:Number = 0; i<=titleXml.length-1; i++) {
				if (instance["listLine"+i]["lineTitle"].text == undefined || instance["listLine"+i]["lineTitle"].text == " ") {
					instance.noDataCount++;
				}
			}
			//로딩바를 사라지게 만드는 조건
			if (instance.noDataCount>0) {
				instance.loadingBar._visible = true;
				//trace("instance.noDataCount="+instance.noDataCount);
			} else {
				instance.loadingBar._visible = false;
				//trace("instance.noDataCount="+instance.noDataCount);
				delete this.onEnterFrame;
			}
		};
	}
	//===================================================================================================================== 텍스트 포멧 설정 메소드

	private function textForMatStart():Void {

		//점검 - - - -  해당메소드 실행여부 
		//trace("폰트생성");

		//라인 텍스트 포멧
		this.instance.myFormat = new TextFormat();
		this.instance.myFormat.font = "돋움";
		this.instance.myFormat.size = 11;
		this.instance.myFormat.letterSpacing = 0;
		this.instance.myFormat.leading = 2;

	}

}